 $(document).ready(
            function() {

              $('#randomGenerate').click(
                function () {
                  var test_1 = /^\d+$/.test($('#randomCount').val());
                  var test_2 = /^\d+$/.test($('#randomMinimum').val());
                  var test_3 = /^\d+$/.test($('#randomMaximum').val());
                  if (
                    test_1 != true ||
                    test_2 != true ||
                    test_3 != true
                  ) {
                    $('#randomNumbers').html('You missed something, please check the values above...');
                  } else if (
                    parseInt($('#randomCount').val()) < 1
                  ) {
                    $('#randomNumbers').html('The count value have to be at least 1...');
                  } else if (
                    parseInt($('#randomMinimum').val()) < 0
                  ) {
                    $('#randomNumbers').html('The minimum value have to be at least 0...');
                  } else if (
                    parseInt($('#randomMaximum').val()) < 1
                  ) {
                    $('#randomNumbers').html('The maximum value have to be at least 1...');
                  } else if (
                     parseInt($('#randomMaximum').val()) <= parseInt($('#randomMinimum').val())
                  ) {
                    $('#randomNumbers').html('The maximum value have to be greater then the minimum...');
                  } else if (
                    $('#randomType').val() == 'unique' &&
                    parseInt($('#randomCount').val()) > ( parseInt($('#randomMaximum').val()) - parseInt($('#randomMinimum').val()) )
                  ) {
                    $('#randomNumbers').html('In a unique sequence: count <= ( maximum - minimum )...');
                  } else {
                    var mTwister = new MersenneTwister();
                    var randomNumbers = new Array();
                    for (
                      var i = 0;
                      i < parseInt($('#randomCount').val());
                      i++
                    ) {
                      var number = ( Math.round( mTwister.random() * ( parseInt($('#randomMaximum').val()) - parseInt($('#randomMinimum').val()) ) ) + parseInt($('#randomMinimum').val()) );
                      var found  = false;
                      for (
                        var j = 0;
                        j < randomNumbers.length;
                        j++
                      ) {
                        if (
                          randomNumbers[j] == number
                        ) {
                          found = true;
                          break;
                        }
                      }
                      if (
                        found == true &&
                        $('#randomType').val() == 'unique'
                      ) {
                        i--;
                      } else {
                        randomNumbers[i] = number;
                      }
                    }
                    $('#randomNumbers').html('');
                    for (
                      var i = 0;
                      i < randomNumbers.length;
                      i++
                    ) {
                      $('#randomNumbers').html($('#randomNumbers').html() + ( i == 0 ? '' : ' ' ) + '<b>' + randomNumbers[i] + '</b>');
                    }
                  }
                }
              );

            }
          );

var MersenneTwister=function(seed){if(seed==undefined){seed=new Date().getTime();}
this.N=624;this.M=397;this.MATRIX_A=0x9908b0df;this.UPPER_MASK=0x80000000;this.LOWER_MASK=0x7fffffff;this.mt=new Array(this.N);this.mti=this.N+1;this.init_genrand(seed);}
MersenneTwister.prototype.init_genrand=function(s){this.mt[0]=s>>>0;for(this.mti=1;this.mti<this.N;this.mti++){var s=this.mt[this.mti-1]^(this.mt[this.mti-1]>>>30);this.mt[this.mti]=(((((s&0xffff0000)>>>16)*1812433253)<<16)+(s&0x0000ffff)*1812433253)
+ this.mti;this.mt[this.mti]>>>=0;}}
MersenneTwister.prototype.init_by_array=function(init_key,key_length){var i,j,k;this.init_genrand(19650218);i=1;j=0;k=(this.N>key_length?this.N:key_length);for(;k;k--){var s=this.mt[i-1]^(this.mt[i-1]>>>30)
this.mt[i]=(this.mt[i]^(((((s&0xffff0000)>>>16)*1664525)<<16)+((s&0x0000ffff)*1664525)))
+ init_key[j]+ j;this.mt[i]>>>=0;i++;j++;if(i>=this.N){this.mt[0]=this.mt[this.N-1];i=1;}
if(j>=key_length)j=0;}
for(k=this.N-1;k;k--){var s=this.mt[i-1]^(this.mt[i-1]>>>30);this.mt[i]=(this.mt[i]^(((((s&0xffff0000)>>>16)*1566083941)<<16)+(s&0x0000ffff)*1566083941))
- i;this.mt[i]>>>=0;i++;if(i>=this.N){this.mt[0]=this.mt[this.N-1];i=1;}}
this.mt[0]=0x80000000;}
MersenneTwister.prototype.genrand_int32=function(){var y;var mag01=new Array(0x0,this.MATRIX_A);if(this.mti>=this.N){var kk;if(this.mti==this.N+1)
this.init_genrand(5489);for(kk=0;kk<this.N-this.M;kk++){y=(this.mt[kk]&this.UPPER_MASK)|(this.mt[kk+1]&this.LOWER_MASK);this.mt[kk]=this.mt[kk+this.M]^(y>>>1)^mag01[y&0x1];}
for(;kk<this.N-1;kk++){y=(this.mt[kk]&this.UPPER_MASK)|(this.mt[kk+1]&this.LOWER_MASK);this.mt[kk]=this.mt[kk+(this.M-this.N)]^(y>>>1)^mag01[y&0x1];}
y=(this.mt[this.N-1]&this.UPPER_MASK)|(this.mt[0]&this.LOWER_MASK);this.mt[this.N-1]=this.mt[this.M-1]^(y>>>1)^mag01[y&0x1];this.mti=0;}
y=this.mt[this.mti++];y^=(y>>>11);y^=(y<<7)&0x9d2c5680;y^=(y<<15)&0xefc60000;y^=(y>>>18);return y>>>0;}
MersenneTwister.prototype.genrand_int31=function(){return(this.genrand_int32()>>>1);}
MersenneTwister.prototype.genrand_real1=function(){return this.genrand_int32()*(1.0/4294967295.0);}
MersenneTwister.prototype.random=function(){return this.genrand_int32()*(1.0/4294967296.0);}
MersenneTwister.prototype.genrand_real3=function(){return(this.genrand_int32()+ 0.5)*(1.0/4294967296.0);}
MersenneTwister.prototype.genrand_res53=function(){var a=this.genrand_int32()>>>5,b=this.genrand_int32()>>>6;return(a*67108864.0+b)*(1.0/9007199254740992.0);}